<?php
class TipoActividadesController extends AppController{
    var $name = 'TipoActividades';
    var $appModule = 'Actividad';
	var $helpers = array('Html', 'Form', 'Number', 'Codigo','GetList');
	
	function index() {
		$q = $this->getBusqueda($this->data['TipoActividade']['busqueda']);
		$this->set('q', $q);
		$this->TipoActividade->recursive = -1;
		$conditions = array('TipoActividade.activo'=>true);
		if (!empty($q)){
			$conditions = array(
				'TipoActividade.activo'=>true,
				'or'=>array(
					'TipoActividade.codigo SIMILAR TO'=>$q,
					'TipoActividade.descripcion SIMILAR TO'=>"%$q%"
				)
			);            	
		} 
		$this->paginate['TipoActividade'] = array(
			'conditions'=>$conditions,
			'order'=>array('TipoActividade.codigo'=>'asc')          
		);        
		
		$this->set('TipoActividades', $this->paginate('TipoActividade'));
		$this->set('limite', $this->limite);
	}
	function add() {		
		if (!empty($this->data)) {
			$usuario = $this->Session->read('Usuario');
			$this->data['TipoActividade']['empresa_id'] = $this->empresaId(); // segun sesion
			$this->data['TipoActividade']['usuario_creacion_id'] = $this->usuarioId(); // segun sesion
			$this->data['TipoActividade']['fecha_creacion'] = 'now()';
			$this->data['TipoActividade']['codigo'] = $this->TipoActividade->generateCodigo();
			$this->TipoActividade->create();
			if ($this->TipoActividade->save($this->data['TipoActividade'])) {
				$this->Session->setFlash(__('El TipoActividade ha sido guardado', true));
				$this->redirect(array('action'=>'index'));
			} 
			else {
				$this->Session->setFlash(__('El Tipo de actividad no ha podido se guardado. Intente nuevamente..', true));
			}
		}
		$this->data['TipoActividade']['codigo'] = $this->TipoActividade->generateCodigo();
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Tipos de Actividad no existe', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			$usuario = $this->Session->read('Usuario');
			$this->data['TipoActividade']['usuario_modificacion_id'] = $this->usuarioId(); // segun sesion
			$this->data['TipoActividade']['fecha_modificacion'] = 'now()';
			if ($this->TipoActividade->save($this->data)) {
				$this->Session->setFlash(__('El Tipo de actividad ha sido guardado', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('El Tipo de actividad no ha podido se guardado. Intente nuevamente.', true));
			}
		}
		else {
			$this->data = $this->TipoActividade->read(null, $id);			
		}               
	}
	
	function delete($id = null, $verbose = true) {
                if (!$id) {
                    if ($verbose){
                        $this->Session->setFlash(__('Id de Tipo de actividad invalido', true));
                        $this->redirect(array('action'=>'index'));
                    }
                    else return false;
                }
                $usuario = $this->Session->read('Usuario');
                $this->TipoActividade->recursive = -1;
                $data = $this->TipoActividade->read(null, $id);
                $data['TipoActividade']['activo']=0;
                $data['TipoActividade']['usuario_borrado_id']=$this->usuarioId();
                $data['TipoActividade']['fecha_borrado']='now()';

                if (!$this->TipoActividade->save($data) && !verbose)
                    return false;
                if ($verbose){
                    $this->Session->setFlash(__('Tipo de actividad eliminado', true));
                    $this->redirect(array('action'=>'index'));
                }
                else return true;
	}

    function process(){// procesa anulaciones y eliminaciones en bloque
        $op = isset($this->params['form']['delete'])?'eliminar':'anular';
        $flag = true;
        $i = 0;
        foreach($this->data as $item){
            if ($item['id']!='0'){
                if(isset($this->params['form']['delete'])){ // eliminar
                    $flag = $this->delete($item['TipoActividade']['id'], false);
                }
                if (!$flag){
                    $data = $this->TipoActividade->read(null, $item['TipoActividade']['id']);
                    $this->Session->setFlash(__("Se ha producido un error al $op el tipo de actividad  #".$data['TipoActividade']['codigo'], true));
                    break;
                }
            }
            $i++;
        }
        if ($flag && $i > 0){
            $this->Session->setFlash(__("El proceso de $op tipo de actividad se ha realizado con exito.", true));
        }
        $this->redirect(array('action'=>'index'));
    }
    
    function buscar($q = null){
        $result = '';
        //estableciendo par�metros de b�squeda
        if(!empty($this->params['url']['q'])){
            $q = $this->params['url']['q'];
        } elseif(!empty($this->params['form']['q'])) {
            $q = $this->params['form']['q'];
        } elseif(!empty($this->data['TipoActividade']['q'])){
            $q = $this->data['TipoActividade']['q'];
        }

        if(empty($q)){
            $result = array('no ha establecido los par�metros correctamente');
        } else {
            $q = strtoupper($q);
			$this->TipoActividade->Behaviors->attach('Containable');
            $result = $this->TipoActividade->find('all',array(
                'conditions'=>array(
                    'TipoActividade.activo'=>true,
					'OR'=>array(
                        'TipoActividade.codigo LIKE'=>$q,
						'TipoActividade.descripcion LIKE'=>"$q%"
					)
                ),
                'limit'=>100
            ));
        }

        //para peticiones de autocompletado
        $res = array();
        if(!empty($this->params['url']['autocomplete']) || !empty($this->params['form']['autocomplete'])){
            foreach($result as $value){ 
                $res[] = array('value'=>$value['TipoActividade']['id'], 'display'=>'<span style="color:gray;font-size:.9em">'. $value['TipoActividade']['codigo'] .'</span><div style="float:right;font-size:.8em" title="'. $value['TipoActividade']['razon_social'] .'">'. $value['TipoActividade']['razon_social'] .'</div>');
            }
            $result = $res;
        }

        if ($this->RequestHandler->isAjax()){
            $this->_ajaxify($result);
        } else {
            return $result;
        }
    }
}
?>